﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ModuloAdministrativo
{
    public partial class ClienteForm : Form
    {
        public ClienteForm()
        {
            InitializeComponent();
        }

        private void ClienteForm_Load(object sender, EventArgs e)
        {
            atualizarListView();
        }

        public void atualizarListView() 
        {
            WSsiar.ServicosSIARSoapClient ws = new WSsiar.ServicosSIARSoapClient();
            WSsiar.PessoaBean[] listaDePessoas = ws.ClienteListar();
            clientesLV.Items.Clear();
            if (listaDePessoas.Length != 0)
            {
                for (int i = 0; i < listaDePessoas.Length; i++)
                {
                    try
                    { 
                        WSsiar.EnderecoBean end = buscarEndereco(listaDePessoas[i].Id);
                        ListViewItem item = new ListViewItem(listaDePessoas[i].Nome);
                        item.SubItems.Add(listaDePessoas[i].Telefone);
                        item.SubItems.Add(listaDePessoas[i].CPF);
                        item.SubItems.Add(end.Rua);
                        item.SubItems.Add(end.Bairro);
                        item.SubItems.Add(end.Cidade);
                        item.SubItems.Add(end.Numero.ToString());
                        item.SubItems.Add(listaDePessoas[i].Login);
                        item.SubItems.Add(listaDePessoas[i].Senha);
                        item.SubItems.Add(end.Complemento);
                        clientesLV.Items.Add(item);
                    }
                    catch (Exception e)
                    {
                        MessageBox.Show("Não há clientes cadastrados!");
                    }
                }
            }
        }

        public WSsiar.EnderecoBean buscarEndereco(int i) 
        {
            WSsiar.ServicosSIARSoapClient ws = new WSsiar.ServicosSIARSoapClient();
            WSsiar.EnderecoBean[] listaDeEnderecos = ws.enderecoListar();
            for (int k = 0; k < listaDeEnderecos.Length; k++)
            {
                if (listaDeEnderecos[k].ID_Cliente == i)
                    return listaDeEnderecos[k];
            }
            return null;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // Verificação dos dados
            if (nomeTB.Text == "" | cpfTB.Text == "" | telefoneTB.Text == ""
                | ruaTB.Text == "" | bairroTB.Text == "" | numeroTB.Text == ""
                | cidadeTB.Text == "")
            {
                MessageBox.Show("Dados inválidos!");
            }
            else
            {
                WSsiar.Pessoa cliente = new WSsiar.Pessoa();
                cliente.Nome = nomeTB.Text;
                cliente.CPF = cpfTB.Text;
                cliente.Login = " ";
                cliente.Senha = " ";
                cliente.Telefone = telefoneTB.Text;
                WSsiar.Endereco endereco = new WSsiar.Endereco();
                endereco.Rua = ruaTB.Text;
                endereco.Bairro = bairroTB.Text;
                endereco.Numero = int.Parse(numeroTB.Text);
                endereco.Telefone = telefoneTB.Text;
                endereco.Cidade = cidadeTB.Text;
                endereco.Complemento = complementoTB.Text;
                WSsiar.ServicosSIARSoapClient ws = new WSsiar.ServicosSIARSoapClient();
                ws.ClienteCadastrar(cliente, endereco);
            }
            this.LimparTela();
            this.atualizarListView();
        }

        private void clientesLV_ItemActivate(object sender, EventArgs e)
        {
            ClienteAtualizarForm form = new ClienteAtualizarForm(
                clientesLV.FocusedItem.SubItems[0].Text,
                clientesLV.FocusedItem.SubItems[1].Text,
                clientesLV.FocusedItem.SubItems[2].Text,
                clientesLV.FocusedItem.SubItems[3].Text,
                clientesLV.FocusedItem.SubItems[4].Text,
                clientesLV.FocusedItem.SubItems[5].Text,
                clientesLV.FocusedItem.SubItems[6].Text,
                clientesLV.FocusedItem.SubItems[7].Text,
                clientesLV.FocusedItem.SubItems[8].Text,
                clientesLV.FocusedItem.SubItems[9].Text);
            form.ShowDialog();
            this.atualizarListView();
        }

        public void LimparTela()
        {
            nomeTB.Clear();
            cpfTB.Clear();
            loginTB.Clear();
            senhaTB.Clear();
            telefoneTB.Clear();
            ruaTB.Clear();
            bairroTB.Clear();
            numeroTB.Clear();
            telefoneTB.Clear();
            cidadeTB.Clear();
            complementoTB.Clear();
        }
    }
}
